One popular application on modern “smartphones,” such as Android® devices and iPhones®, is rendering media such as audio/video. The HTTP streaming specifications—including progressive download, 3GPP adaptive HTTP streaming, MPEG adaptive HTTP streaming, and Apple® HTTP streaming—do not specify details on how the client or server should regulate the download bandwidth during the download session. One straightforward alternative is to download the entire session using the maximum bandwidth, and store the content in a buffer on the mobile device. Alternatively, if sufficient memory is not available, the mobile device may fill a download buffer and then download data at the rate it is “consumed,” or rendered to the screen and speaker.
In practice, however, both approaches exhibit deficiencies. If an entire unit of media content is downloaded and buffered, radio resources in the downlink are wasted if the user only watches part of the media, and the rest is discarded. Thus, a streaming strategy may make more efficient use of radio resources by only downloading data as it is consumed. In practice, however, this may maintain the mobile device in a high activity state, in which it consumes significant power, more quickly depleting batteries.
For example, Android (OpenCore) has a small Media Reception Buffer, about 2.6 MB. The streaming pattern of an Android device is thus a large startup burst which quickly fills the buffer, followed by a regular succession of smaller bursts in an attempt to keep the buffer full. Because of timeout restrictions on transitions between transceiver states, the result is that Android devices remain in an active state (e.g., cell-DCH) throughout much of the streaming session, in which they consume the most power.
In contrast, the iPhone Media Receive Buffer is much larger, about 32 MB. Once the buffer is full, the iPhone throttles video data reception by frequently closing the TCP connection, and restarting with a byte range request to the server as the buffer depletes. Because an active connection to the wireless network is periodically closed, the iPhone may spend more time in an idle state (e.g., URA-pch), consuming less power and prolonging battery life. However, as mentioned above, if a user watches only a few seconds of the media, valuable radio resources may have been wasted in filling the large buffer.
In general, characteristics of the mobile device and network should be taken into account in selecting a streaming throttling strategy, to avoid excessive power consumption, network signaling, and network load.
Analysis of these parameters reveals that many of them have non-linear relationships. This means that small variations in one parameter can lead to large variations of another, or vice versa. Only by understanding these relationships is it possible to select an optimal operating point for a given parameter (e.g., power consumption). Furthermore, understanding the non-linear relationships allows one to avoid operating points where some parameter is set to less desired values without any greater gain on other parameters.